﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Com.Toook.ParseHtml.Entity
{
    /// <summary>
    /// Entity 实体类的一个属性值。
    /// </summary>
    public class Property
    {
        /// <summary>
        /// 其他Property不使用此标识。只有最后一个跳转页面使用此值。表示最后一个跳转页面有多个详细页面的url.如一部电影有DVD/BD/HD等多个URL
        /// </summary>
        public bool IsLastTransferHasMultiUrl = false;

        /// <summary>
        /// 实体的属性名称
        /// </summary>
        public string PropertyName;
        /// <summary>
        /// 当前步骤
        /// </summary>
        public Step CurrentStep
        {
            get{ return currentStep; }
        }
        /// <summary>
        /// 增加解析步骤
        /// </summary>
        /// <param name="step"></param>
        public void AddStep(Step step)
        {
            stepList.Add(step);
        }
        /// <summary>
        /// 移到下一步.开始位置在所有步骤之前，就像DataReader.Read()
        /// </summary>
        /// <returns></returns>
        public bool NextStep()
        {
            index++;
            if (index < stepList.Count)
            {
                currentStep = stepList[index];
                return true;
            }
            else
            {
                return false;
            }
        }
        /// <summary>
        /// 重置Step到所有步骤之前
        /// </summary>
        public void ResetNextStep()
        {
            index = -1;
        }
        private List<Step> stepList = new List<Step>();
        private Step currentStep = null;
        private int index = -1;
        private XmlResult result = null;
        /// <summary>
        /// 一条最终结果
        /// </summary>
        public XmlResult Result
        {
            get { return result; }
            set { result = value; }
        }
    }
}
